<?php

/**
 * Description of UsersController
 *
 * @author Bui Van Thien
 */
App::uses('AppController', 'Controller');
App::uses('AuthComponent', 'Controller/Component');

class UsersController extends AppController
{

    public $components = array('Paginator', 'Auth' =>
        array(
            'loginRedirect' => array('controller' => 'users', 'action' => 'login'),
            'logoutRediect' => array('controller' => 'orders', 'action' => 'index'),
            'authError' => 'Error',
            'loginError' => 'Sai username/password'
        ));

    public function beforeFilter()
    {
        $this->Auth->allow('login', 'logout', 'add');
        $this->set('user', $this->Auth->user());
    }

    public function delete($id = null)
    {
        $this->loadModel('Order');
        $this->Order->id = $id;
        if (!$this->Order->exists()) {
            $this->Session->setFlash('Order này ko tồn tại!', 'alert-danger');
        } else {
            $this->request->onlyAllow('post', 'delete');
            if ($this->Order->delete()) {
                $this->Session->setFlash(__('Xóa thành công.'), 'alert-success');
            } else {
                $this->Session->setFlash(__('Không thể xóa. Vui lòng thử lại.'), 'alert-danger');
            }
            return $this->redirect(array('action' => 'index'));
        }
    }

    public function  changepass()
    {
        if ($this->request->is('post')) {

            $data = $this->request->data;
            $newpass = $data['users']['new_password'];
            $confirm_pass = $data['users']['password_confirm'];
            if ($newpass != $confirm_pass) {
                $this->Session->setFlash("Mật khẩu mới và xác nhận mật khẩu mới không khớp!", 'alert-danger');
            } else {
                if ($this->User->save(array('id' => $this->Auth->user('id'), 'password' => $newpass, 'password_confirm' => $newpass))) {
                    $this->Session->setFlash('Thay đổi mật khẩu thành công!', 'alert-success');
                    $this->redirect(array('action' => 'index'));
                } else {
                    $this->Session->setFlash('Thay đổi mật khẩu không thành công vui lòng thử lại!', 'alert-danger');
                }
            }
        }

    }


    public function add()
    {
        if ($this->request->is('post')) {
            $this->User->create();
            if ($this->User->save($this->request->data)) {
                $this->Session->setFlash('Đăng ký thành công!', 'alert-success');
                $this->redirect(array('action' => 'login'));
            } else {
                $this->Session->setFlash('Đăng ký thất bại!', 'alert-danger');
            }
        }
    }

    public function index()
    {
        $this->layout = 'admin';
        $this->loadModel('Order');
//TODO get all song sort desc paginator
        $this->paginate = array('limit' => 15);
        $this->set('orders', $this->Paginator->paginate('Order'));
//debug($this->Paginator->paginate('Order'));die;
    }

    public function logout()
    {
        $this->Session->destroy();
        $this->redirect(array('controller' => 'orders', 'action' => 'index'));
    }

    public function today()
    {
        date_default_timezone_set("Asia/Ho_Chi_Minh");
        $today = date("Y-m-d");
        $this->layout = 'admin';
        $this->loadModel('Order');
        $this->paginate = array('limit' => 15, 'conditions' => array('Order.date LIKE' => "$today%"));
        $this->set('orders', $this->Paginator->paginate('Order'));
    }

    /**
     * topcomment method
     * @return list topcomment > 5
     */
    public function topcomment()
    {
        $this->layout = 'admin';
        $this->loadModel('Order');
        $this->paginate = array('limit' => 15,
            'conditions' => array('number_comment >= 5'),
            'order' => array('number_comment' => 'DESC'));
        $this->set('orders', $this->Paginator->paginate('Order'));
    }

    public function listened()
    {
        $this->layout = 'admin';
        $this->loadModel('Order');
        $month = date('m');
        $this->paginate = array('limit' => 4, 'conditions' => array('status' => 2, 'MONTH(date)' => $month), 'order' => array('date' => 'DESC'));
        $this->set('listeneds', $this->Paginator->paginate('Order'));
    }

    public function login()
    {

        if ($this->Session->check('Auth.User')) {
            $this->redirect(array('action' => 'index'));
        }
        if ($this->request->is('post')) {

            if ($this->Auth->login()) {
                $this->redirect($this->Auth->redirectUrl());
            } else {
                $this->Session->setFlash(__('Sai tên đăng nhập hoặc mật khẩu'), 'alert-danger');
            }
        }
    }

}
